package br.com.rotary.manager;

import br.com.rotary.manager.generico.ManagerPesquisarGenerico;
import br.com.rotary.modelo.Clube;
import br.com.rotary.modelo.Estado;
import br.com.rotary.servico.ClubeServico;
import br.com.rotary.utilitario.Msg;
import java.util.Map;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author laverson
 */
@ViewScoped
@ManagedBean
public class ManagerClube extends ManagerPesquisarGenerico<Clube> {

    @EJB
    ClubeServico clubeServico;
    private Clube clube;
    private Clube clubeExcluir;
    private String clubeId;

    @Override
    public void init() {
        setServico(clubeServico);

        Map<String, String> params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
        this.clubeId = params.get("clube");

        if (this.clubeId != null && !this.clubeId.isEmpty()) {
            this.clube = clubeServico.pesquisar(Long.parseLong(this.clubeId));
            if (this.clube.getEstado() == null) {
                this.clube.setEstado(new Estado());
            }
        } else {
            this.clube = new Clube();
            this.clube.setEstado(new Estado());
        }
    }

    public void salvar() {
        try {
            if (this.clube.getId() == null) {
                clubeServico.salvar(this.clube);
                Msg.messagemInfo(Msg.SuccessFull);
                init();
            } else {
                clubeServico.atualizar(this.clube);
                Msg.messagemInfo(Msg.SuccessFull);
            }
        } catch (Exception e) {
            System.err.println(e);
        }
    }

    @Override
    public void pesquisar() {
        entidadePesquisar = this.clube;

        getSearchResults().setFirst(0);
        onLoadModel();
    }

    @Override
    public void limpar() {
        this.clube = new Clube();
    }

    @Override
    public void remover() {
        try {
            this.clubeExcluir.setAtivo(false);
            clubeServico.atualizar(this.clubeExcluir);
        } catch (Exception e) {
            System.err.println(e);
        }
    }

    public Clube getClube() {
        return clube;
    }

    public void setClube(Clube clube) {
        this.clube = clube;
    }

    public Clube getClubeExcluir() {
        return clubeExcluir;
    }

    public void setClubeExcluir(Clube clubeExcluir) {
        this.clubeExcluir = clubeExcluir;
    }
}
